前幾天開始加入 Agent 之後,AI Companion 已經不只是單純回答問題。
Day 16 做的是:
讓 Agent 判斷現在應該做什麼。
Day 17 則進一步加入主動式判斷,讓系統不一定要等使用者開口,才能進行下一步。
但到目前為止,Agent 大部分都還只是「做決策」。
所以今天要再往前一步:
讓 Agent 真的可以呼叫工具完成 Action。
Tool Calling 可以理解成:
LLM 不只產生文字,而是可以選擇一個系統功能並執行。
例如使用者說:
明天早上提醒我量血壓。
如果只是一般 Chatbot,可能只會回答:
好的,記得明天早上量血壓喔。
但這其實沒有真的建立提醒。
加入 Tool Calling 後,流程會變成:
User
↓
Agent Decision
↓
Tool Selection
↓
Tool Call
↓
Tool Result
↓
LLM Response
例如:
使用者:
「明天早上提醒我量血壓。」
↓
Agent 判斷
intent = create_reminder
↓
Tool Call
create_reminder(
task="量血壓",
time="tomorrow morning"
)
↓
Tool Result
success = true
↓
LLM
「好,我會在明天早上提醒你量血壓。」
這時候 AI 就不只是「說它會做」,而是真的把提醒存進系統。
目前先把前面做過的功能包成 Agent 可以呼叫的 Tool:
create_reminder
get_health_memory
get_health_state
search_health_rag
add_health_event
例如使用者問:
「我最近是不是常常睡不好?」
Agent 可以判斷這不是單純聊天,而是需要查看過去的健康資料。
流程就會變成:
User Question
↓
Agent
↓
get_health_memory()
↓
取得近期睡眠事件
↓
Health State Analysis
↓
LLM Response
這樣 Day 12 到 Day 15 做的 Health Memory、Health State 和 RAG,就可以正式變成 Agent 能使用的能力。
每個 Tool 都需要定義清楚:
name
description
parameters
required
例如提醒工具可以設計成:
{
"name": "create_reminder",
"parameters": {
"task": "量血壓",
"time": "tomorrow morning"
}
}
LLM 不需要知道提醒系統內部怎麼實作,只需要知道:
什麼情況可以使用這個 Tool,以及要提供哪些參數。
Tool Calling 加進來後,也會產生新的問題。
因為「回答一句話」和「真的執行一個 Action」風險不同。
所以第一版先加入基本規則:
查詢資料 → 可以直接執行
建立提醒 → 執行後回報
修改資料 → 需要更嚴格判斷
高風險操作 → 不自動執行
未來如果加入傳訊息、聯絡家屬或醫療相關 Action,就必須加入更完整的確認機制。
Day 16:
Agent 開始會決定下一步。
Day 17:
Agent 開始判斷什麼時候應該主動。
而 Day 18 則是:
讓 Agent 從「會想」正式走向「會做」。
目前流程開始變成:
Conversation
↓
Context
↓
Agent Decision
↓
Tool Calling
↓
Action
↓
Result
↓
Response
下一步 Day 19,準備加入 Personalization / User Context。
讓 Agent 不只是知道「要做什麼」,還能進一步根據不同使用者,決定「應該怎麼做」。